package com.example.jpushdemo;


import java.util.Random;

import org.json.JSONException;
import org.json.JSONObject;


import net.tsz.afinal.FinalHttp;
import net.tsz.afinal.http.AjaxCallBack;
import net.tsz.afinal.http.AjaxParams;
import android.app.Application;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;
import cn.jpush.android.api.JPushInterface;

/**
 * For developer startup JPush SDK
 * 
 * 一般建议在自定义 Application 类里初始化。也可以在主 Activity 里。
 */
public class ExampleApplication extends Application {
    private static final String TAG = "ExampleApplication";
    public FinalHttp finalHttp;
    @Override
    public void onCreate() {
    	 Log.d(TAG, "onCreate");
         super.onCreate();
         JPushInterface.setDebugMode(true); 	//设置开启日志,发布时请关闭日志
         JPushInterface.init(this);     		// 初始化 JPush
         System.out.println("=============");
         System.out.println("======设备id========"+DeviceHelper.getInstance(this).getImei());
         JPushInterface.setAliasAndTags(this, DeviceHelper.getInstance(this).getImei(), null);//设置设备别名
         finalHttp = new FinalHttp();
    }
    
    
    
    
    
    /**
     * 
     *  @函数名称 : post_Notification
     *  @功能描述 :  发送通知
     *  @参数及返回值说明：
     *
     *  @修改记录：
     *  @日期：2013-8-9 下午5:07:10	修改人：黄秋
     *  @描述	：
     *
     */
    public void post_Notification(){
    	
    	JSONObject msg_content_jsonob = new JSONObject();
    	try {
			msg_content_jsonob.put("n_title", "");//不填默认为程序名，只有android有这个选项
			msg_content_jsonob.put("n_content", "通知内容");
	    	JSONObject jsonObject2 = new JSONObject();
	    	jsonObject2.put("name", "小明");
	    	jsonObject2.put("age", "27");
	    	msg_content_jsonob.put("n_extras", jsonObject2);
		} catch (JSONException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
    	
    	
    	String str_senno = ""+new Random(10000).nextInt(1000000);
    	System.out.println("====str_senno==="+str_senno);
    	String str_app_key="70b2ba18fdb22cf0ef65fa7f";
    	String  str_MasterSecret="01c729518c6f553159b75839";
    	String str_receiver_type ="4";
//    	String str_receiver_value =DeviceHelper.getInstance(this).getImei();//DeviceHelper.getInstance(this).getImei();//设备码获取
    	String str_receiver_value ="";
    	String str_verification_code=StringUtils.toMD5(str_senno+str_receiver_type+str_receiver_value+str_MasterSecret);
    	AjaxParams params = new AjaxParams();
		params.put("sendno", str_senno);
		params.put("app_key", str_app_key);
		params.put("receiver_type", str_receiver_type);//接收者类型。1、指定的 IMEI。2、指定的 tag。3、指定的 alias。4、广播：对 app_key 下的所有用户推送消息。
//		params.put("receiver_value", str_receiver_value);//发送范围值，与 receiver_type 相对应。1、IMEI只支持一个2、tag 支持多达 10 个，使用 "," 间隔。填写多个 tag 时，最后推送对象是这多个 tag 的 user set 的并集，而不会有重复用户。3、alias 支持多达 10 个，使用 "," 间隔。4、不需要填
		params.put("verification_code", str_verification_code);
		params.put("platform", "android,ios");//目标用户终端手机的平台类型，如： android, ios 多个请使用逗号分隔。
		params.put("msg_type", "1");//发送消息的类型：１、通知    ２、自定义消息（只有 Android 支持）
		params.put("msg_content", msg_content_jsonob.toString());
		finalHttp.post("http://api.jpush.cn:8800/sendmsg/v2/sendmsg", params, new AjaxCallBack<Object>() {

			@Override
			public void onSuccess(Object t) {
				// TODO Auto-generated method stub
				super.onSuccess(t);
				
				System.out.println("====返回结果====="+t.toString());
				JSONObject json;
				try {
					json = new JSONObject(t.toString());
					switch (json.getInt("errcode")) {
					case 0:
						Toast.makeText(ExampleApplication.this, "操作成功", Toast.LENGTH_SHORT);
						break;
					default:

						break;
					}
				} catch (JSONException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}

			@Override
			public void onFailure(Throwable t, String strMsg) {
				// TODO Auto-generated method stub
				super.onFailure(t, strMsg);
				Toast.makeText(ExampleApplication.this, "网络异常", Toast.LENGTH_SHORT);
			}

		});
    	
    	
    	
    }
    
    
}
